package com.movie.comm.utils;

import java.util.Properties;
 
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
/**
 * 
* @ClassName: SendMailUtil 
* @Description: TODO(描述这个类的作用) 
* @author 左岩
* @date 2018年12月6日 上午10:58:35 
*
 */
public class SendMailUtil {
	
   //这个是QQ邮箱中开启smtp服务 给的密码
   private static final String KEY = "sanzzkaofrrjdidc";
	
	/**
	 * 
	* @Title: send 
	* @Description: 发送邮件的方法 
	* @param  toEmail  收件人email地址
	* @param  fromEmail 发件人的qq邮箱
	* @param  emailTitle 邮件的标题
	* @param  emailContent 邮件的内容
	* @return boolean   成功发送返回True 失败发送返回False
	* @throws 
	 */
    public static boolean send(String toEmail, String fromEmail, 
     String emailTitle, String emailContent)
   {
 
        try {
        	 // 创建Properties 类用于记录邮箱的一些属性
            Properties props = new Properties();
            // 表示SMTP发送邮件，必须进行身份验证
            props.put("mail.smtp.auth", "true");
            //此处填写SMTP服务器
            props.put("mail.smtp.host", "smtp.qq.com");
            //端口号，QQ邮箱给出了两个端口，但是另一个我一直使用不了，所以就给出这一个587
            props.put("mail.smtp.port", "587");
            // 此处填写你的账号
            props.put("mail.user", fromEmail);
            // 此处的密码就是前面说的16位STMP口令
            props.put("mail.password", KEY);

            // 构建授权信息，用于进行SMTP进行身份验证
            Authenticator authenticator = new Authenticator() {

                protected PasswordAuthentication getPasswordAuthentication() {
                    // 用户名、密码
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            // 使用环境属性和授权信息，创建邮件会话
            Session mailSession = Session.getInstance(props, authenticator);
            // 创建邮件消息
            MimeMessage message = new MimeMessage(mailSession);
            // 设置发件人
            InternetAddress form = new InternetAddress(
                    props.getProperty("mail.user"));
            message.setFrom(form);

            // 设置收件人的邮箱
            InternetAddress to = new InternetAddress(toEmail);
            message.setRecipient(RecipientType.TO, to);
            // 设置邮件标题
            message.setSubject(emailTitle);

            // 设置邮件的内容体
            message.setContent(emailContent, "text/html;charset=UTF-8");

            // 最后当然就是发送邮件啦
            Transport.send(message);
           
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
 
    //调用发送邮件的Demo
    public static void main(String[] args) {
        // 您要发送给谁，标题，内容
        SendMailUtil.send("adm1nistrator@163.com","2601099508@qq.com","Java 发送 Email", "-----------今天的商品价格便宜了，赶快过来买吧");
    }
    
   
    
    
}